package com.ghj.utils;

import com.wf.captcha.SpecCaptcha;
import com.wf.captcha.base.Captcha;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;

@Component
public class GetCaptcha {
    public String captcha(HttpServletRequest request, HttpServletResponse response){
        // 设置请求头为输出图片类型
        response.setContentType("image/gif");
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);

        // 三个参数分别为宽、高、位数
        SpecCaptcha captcha = new SpecCaptcha(111, 30, 4);
        // 设置字体，有默认字体，可以不用设置
        captcha.setFont(new Font("Verdana", Font.PLAIN, 32));
        // 设置类型，纯数字、纯字母、字母数字混合
        /**
         * 验证码字符类型：
         * TYPE_DEFAULT	数字和字母混合
         * TYPE_ONLY_NUMBER	纯数字
         * TYPE_ONLY_CHAR	纯字母
         * TYPE_ONLY_UPPER	纯大写字母
         * TYPE_ONLY_LOWER	纯小写字母
         * TYPE_NUM_AND_UPPER	数字和大写字母
         */
        captcha.setCharType(Captcha.TYPE_DEFAULT);
        // 验证码存入session
        request.getSession().setAttribute("captcha", captcha.text().toLowerCase());
        String code = captcha.toBase64();


        return code;
    }
}
